The procedure "e::compile-form" compiles any Pixie Scheme object and returns the compiled value of that object. You might use it as "(define bar (e::compile-form foo))", where "foo" evaluates to something to be compiled.
"E::compile-form" does actual compilation only when its argument evaluates to a lambda expression. It returns all other Pixie Scheme objects unchanged.
If "Compile Defines", in the "Options" menu, is checked, Pixie Scheme will automatically compile the second arguments of all "define"s: You need not use "e::compile-form" with "define", if that item is checked.
Enter Source Code
To enter source code:
Use the "load" procedure to load a file, or select the "Load File…" or "Insert File…" menu item from the "File" menu.
Or use a textΓÇôediting desk accessory, or a full textΓÇôeditor (under MultiFinder) to create source code, and then "Cut" and "Paste" it into Pixie Scheme.
Or just type directly into Pixie Scheme. You can save your work later with the "Save Selection…" command from the "File" menu.
Evaluate Expressions
To evaluate one or more expressions:
Select the expressions with the mouse, then choose "Evaluate" from the "Commands" menu, or press the "Enter" key, or hold down the "Command" key while you press the "Return" key.
As a short cut, if nothing is selected, these commands will select the entire line the cursor is on, and evaluate it.
Inspect a Scheme Object
To learn more about a Scheme object:
You might use the "e::inspect" procedure, which evaluates its argument, displays information about it, and returns the evaluated argument.
This procedure is available in the "Commands" menu: Mark the object with the mouse first. One menu item automatically quotes what is marked; the other does not. Both act on the whole line if nothing is marked.
"E::inspect" works well within programs, or with one of the topΓÇôlevel loop variables as its argument. (See the menu item for "Learn What Just Happened".)
Learn What Just Happened
To find out what just happened:
At any time, the variable "┬▒" (optionΓÇôplus) is bound to the last topΓÇôlevel expression evaluated, "┬▒┬▒" to the next to last, and "┬▒┬▒┬▒" to the third from last. Evaluate one to recover an expression.
Similarly, "┬░" (optionΓÇôasterisk) is bound to the last result returned to topΓÇôlevel, "┬░┬░" to the next to last, and "┬░┬░┬░" to the third from last. Evaluate or inspect one to recover a result, or to learn more about it.
Furthermore, "ΓÇô" (optionΓÇôminus) is bound to the form then being evaluated (if any).
These variables are called "topΓÇôlevel loop variables".
Record What You Do
To record your interaction with Pixie Scheme in a file:
Use the "transcript-on" procedure to record every expression you evaluate, and everything Pixie Scheme prints in response, in a file.
Call "transcript-on" with an argument that is the name of the file you wish to use, as a string. If you use no argument, "transcript-on" will open a dialog box for file selection.
The "transcript-off" procedure will close any open transcript file.
Report a Bug
Send bug reports to:
Jay Reynolds Freeman
P. O. Box 60628
Palo Alto, CA, 94306-0628, USA
Give as much information as you can, including the type of Macintosh you were using, the version of Apple System Software, and any message Pixie Scheme may have printed out.
There is more information about identifying and reporting bugs in the HyperCard help stack that accompanies Pixie Scheme.
Save Your Work
To save work done in Pixie Scheme:
The "Save World…" item from the "File" menu will write out all the contents of Pixie Scheme's memory to a file, which can be reloaded later with the "Load World…" command, also from the "File" menu.
If you wish, you may use the procedures "e::save-world" and "e::load-world" instead. Each takes the name of a file, as a string, for an argument, or else opens a dialog box if there is no argument.
Loading a world will overwrite the entire contents of Pixie Scheme's memory, so be cautious about doing it.
"Save Selection…", from the "File" menu, saves marked text to a file. Or just "Cut" and "Paste" it to a text editor.
Trace Procedure Calls
To trace procedure calls:
A documented Scheme source code file, "Trace.s", should have accompanied Pixie Scheme. Its contents will allow you to trace procedure calls, and to show what arguments they are called with and what values they return.
You might want to read the file before using it. In any case, load the file and then use the procedures "trace" and "untrace". (There are some other procedures, but these two are the basic ones.)
"Trace" takes three arguments ΓÇö a symbol (naming a procedure you want to trace), a boolean to tell whether you want to see the arguments, and a boolean to tell whether you want to see the result. "Untrace" just takes a symbol.
Use the Help Stack
There is a HyperCard help stack:
A HyperCard help stack, "Pixie Scheme Help", should have accompanied Pixie Scheme. I hope you find it worth reading. It contains lots of information that was too complicated to put into the "Help" menu.
I hope you have HyperCard. Its linkΓÇôbrowsing, graphics and customizable search facilities make a help stack much more useful than mere text. And surely, HyperCard is more widespread than any single wordΓÇôprocessor.
If you have MultiFinder and lots of memory, or perhaps a special desk accessory, you can use the help stack while running Pixie Scheme. Or if you print the help stack, the cards will come out in a readable order.